Migrate stream APIs from rmm::cuda_stream_view to cuda::stream_ref - #2521
Migrate stream APIs from rmm::cuda_stream_view to cuda::stream_ref#2521bdice wants to merge 6 commits into
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
b8273bb to
4415405
Compare
d54e7ac to
35c0411
Compare
|
Rebased onto preparation PR #2557 and validated against the rebased RMM/RAFT stack. Local |
|
Follow-up audit found two Validation:
|
b385713 to
c262440
Compare
|
Stack correction: the two compatibility-accessor changes from the prior comment are independently buildable, so they now live in preparation PR #2557 as commit 62aaa35. This migration branch was rebased onto that preparation head and is now c262440. Its source tree is byte-for-byte identical to the previously validated migration tree. |
|
Final parsimony audit found a duplicated Validation passed with |
Summary
Track the coordinated migration of stream APIs and call sites from
rmm::cuda_stream_viewto CCCL'scuda::stream_ref. This propagatescuda::stream_refthrough RMM containers and memory resources, RAFT resource and handle APIs, downstream C++ interfaces, Python/Cython bindings, benchmarks, tests, and documentation.This migrates affected cuVS API signatures and internal call sites while extracting raw stream handles only where CUDA, generated/JIT, or legacy APIs require them.
Depends on rapidsai/rmm#2372 and NVIDIA/raft#3129.
Tracked in rapidsai/build-planning#318.
Migrations
cuda::stream_refthrough stream pools, resource accessors, conditionals, and downstream APIs without converting tormm::cuda_stream_viewcuda::stream_refconstructions for default/legacy/per-thread streamsrmm::cuda_stream_default➡️cuda::stream_ref{cudaStream_t{cudaStreamDefault}}rmm::cuda_stream_legacy➡️cuda::stream_ref{cudaStreamLegacy}rmm::cuda_stream_per_thread➡️cuda::stream_ref{cudaStreamPerThread}.get()when calling an API that requires a rawcudaStream_t, including CUDA runtime, library, CUB, and legacy API boundaries (previouslyrmm::cuda_stream_viewusedvalue()).sync()when synchronizing acuda::stream_ref(previouslyrmm::cuda_stream_viewusedsynchronize())